Bu dərsin sonunda siz:
✅ Test bərabərləşdirilməsinin mahiyyətini və əhəmiyyətini başa
düşəcəksiniz
✅ Üfüqi və şaquli bərabərləşdirmə arasındakı fərqi öyrənəcəksiniz
✅ R-də test bərabərləşdirmə üçün lazım olan paketləri quraşdıra
biləcəksiniz
✅ Sadə test məlumatları yarada və təhlil edə biləcəksiniz
Test bərabərləşdirilməsi (test equating) müxtəlif test formalarının və ya müxtəlif vaxtlarda aparılan testlərin nəticələrini müqayisə edilə bilən şəkildə çevirən statistik prosesdir. Bu proses təhsildə ədalətli qiymətləndirmə üçün vacibdir.
Təsəvvür edin ki, siz universitet qəbul imtahanına hazırlaşırsınız. Sizin imtahan tarixiniz Mart ayıdır, dostunuzunkü isə May ayında. May ayındakı test daha çətin olsa, siz ədalətli qiymətləndirilmiş olacaqsınız?
Test bərabərləşdirmə bu problemi həll edir!
Təyin: Eyni səviyyədə olan müxtəlif test formalarının nəticələrini bərabərləşdirir.
Nümunələr:
Riyaziyyat testinin A və B formalarının müqayisəsi
TOEFL testinin müxtəlif tarixlərdə aparılan versiyaları
Sürücülük imtahanının müxtəlif formları
Təyin: Müxtəlif səviyyələrdə olan testlərin nəticələrini bərabərləşdirir.
Nümunələr:
8-ci sinif riyaziyyat testini 9-cu sinif riyaziyyat testi ilə əlaqələndirmək
İbtidai təhsil səviyyəsindən orta təhsil səviyyəsinə keçid
Dil öyrənməsində A1 səviyyəsindən A2 səviyyəsinə keçid
Üfüqi və Şaquli Bərabərləşdirmənin Vizual Təqdimatı
Test bərabərləşdirmə üçün bir neçə specialized R paketi mövcuddur. Gəlin onları quraşdıraq:
# Lazım olan paketləri yükləyin
install.packages(c(
"equate", # Ümumi bərabərləşdirmə metodları
"kequate", # Kernel bərabərləşdirmə
"SNSequate", # Score linking metodları
"ltm", # IRT modelləri
"psych", # Psixometrik analiz
"ggplot2", # Vizuallaşdırma
"dplyr", # Məlumat manipulyasiyası
"knitr", # Hesabat yaratma
"plotly" # İnteraktiv qrafiklər
))# Paketləri aktivləşdirin
suppressMessages({
library(equate) # Test bərabərləşdirmə metodları
library(kequate) # Kernel metodlar
library(SNSequate) # Score linking
library(ltm) # Item Response Theory
library(psych) # Psixometrik təhlil
library(ggplot2) # Qrafik vizuallaşdırma
library(dplyr) # Məlumat manipulyasiyası
library(knitr) # Cədvəl formatlaşdırması
library(plotly) # İnteraktiv qrafiklər
})
# R versiyasını və paket versiyalarını yoxlayın
cat("R versiyası:", R.version.string, "\n")## R versiyası: R version 4.2.3 (2023-03-15)
## equate paketi versiyası: 2.0.8
## ggplot2 paketi versiyası: 3.5.2
# Təsadüfi nömrə generatoru üçün seed təyin edin
set.seed(2024)
# Qrafik parametrləri
theme_set(theme_minimal(base_size = 12))
# Rəngli palitra təyin edin
colors_custom <- c("#3498db", "#e74c3c", "#2ecc71", "#f39c12", "#9b59b6")
# Məlumat strukturu üçün default formatlar
options(
digits = 3,
scipen = 999,
width = 80
)
cat("✅ R mühiti uğurla konfiqurasiya edildi!\n")## ✅ R mühiti uğurla konfiqurasiya edildi!
Gəlin iki paralel test forması üçün nümunə məlumatlar yaradaq:
# Test A nəticələri (300 şagird)
set.seed(123)
test_A <- data.frame(
student_id = 1:300,
score = round(rnorm(300, mean = 75, sd = 12), 0),
form = "A"
)
# Test B nəticələri (280 şagird)
set.seed(456)
test_B <- data.frame(
student_id = 301:580,
score = round(rnorm(280, mean = 78, sd = 10), 0),
form = "B"
)
# Məlumatların strukturunu yoxlayın
cat("Test A məlumatları:\n")## Test A məlumatları:
## 'data.frame': 300 obs. of 3 variables:
## $ student_id: int 1 2 3 4 5 6 7 8 9 10 ...
## $ score : num 68 72 94 76 77 96 81 60 67 70 ...
## $ form : chr "A" "A" "A" "A" ...
##
## Test B məlumatları:
## 'data.frame': 280 obs. of 3 variables:
## $ student_id: int 301 302 303 304 305 306 307 308 309 310 ...
## $ score : num 65 84 86 64 71 75 85 81 88 84 ...
## $ form : chr "B" "B" "B" "B" ...
# İlkin təhlil
summary_A <- summary(test_A$score)
summary_B <- summary(test_B$score)
cat("Test A nəticələrinin xülasəsi:\n")## Test A nəticələrinin xülasəsi:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 47.0 68.0 74.0 75.4 83.0 114.0
##
## Test B nəticələrinin xülasəsi:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 54.0 71.0 78.0 78.3 86.0 101.0
# Ətraflı statistikalar
stats_comparison <- data.frame(
Statistika = c("Ortalama", "Standart Sapma", "Minimum", "Maksimum",
"25% Persentil", "75% Persentil", "Şagird Sayı"),
Test_A = c(
round(mean(test_A$score), 2),
round(sd(test_A$score), 2),
min(test_A$score),
max(test_A$score),
quantile(test_A$score, 0.25),
quantile(test_A$score, 0.75),
nrow(test_A)
),
Test_B = c(
round(mean(test_B$score), 2),
round(sd(test_B$score), 2),
min(test_B$score),
max(test_B$score),
quantile(test_B$score, 0.25),
quantile(test_B$score, 0.75),
nrow(test_B)
)
)
kable(stats_comparison, caption = "Test A və Test B-nin Müqayisəli Statistikaları")| Statistika | Test_A | Test_B |
|---|---|---|
| Ortalama | 75.4 | 78.29 |
| Standart Sapma | 11.4 | 9.82 |
| Minimum | 47.0 | 54.00 |
| Maksimum | 114.0 | 101.00 |
| 25% Persentil | 68.0 | 71.00 |
| 75% Persentil | 83.0 | 86.00 |
| Şagird Sayı | 300.0 | 280.00 |
# Məlumatları birləşdirin
combined_data <- rbind(test_A, test_B)
# Histogram müqayisəsi
p1 <- ggplot(combined_data, aes(x = score, fill = form)) +
geom_histogram(alpha = 0.7, position = "identity", bins = 25) +
scale_fill_manual(values = colors_custom[1:2]) +
labs(
title = "Test Nəticələrinin Paylanması",
subtitle = "Test A və Test B-nin Histogramları",
x = "Test Balı",
y = "Tezlik",
fill = "Test Forması"
) +
theme_minimal()
print(p1)Test A və Test B nəticələrinin müqayisəsi
# Box plot müqayisəsi
p2 <- ggplot(combined_data, aes(x = form, y = score, fill = form)) +
geom_boxplot(alpha = 0.7, outlier.alpha = 0.5) +
geom_jitter(alpha = 0.3, width = 0.2, height = 0) +
scale_fill_manual(values = colors_custom[1:2]) +
labs(
title = "Test Nəticələrinin Box Plot Müqayisəsi",
x = "Test Forması",
y = "Test Balı",
fill = "Test Forması"
) +
theme_minimal() +
theme(legend.position = "none")
print(p2)Test A və Test B nəticələrinin müqayisəsi
Təsəvvür edin ki, Azərbaycan Universitetləri Qəbul İmtahanı ildə iki dəfə - yaz və payız fəsillərində keçirilir. Hər iki imtahanda Riyaziyyat və Şifahi hissələr var.
# Universitet qəbul imtahanının iki fəsildə keçirilən versiyalarını simulyasiya edək
# Yaz imtahanı (500 iştirakçı)
set.seed(789)
spring_exam <- data.frame(
student_id = 1:500,
season = "Yaz",
math_score = round(rnorm(500, mean = 520, sd = 80), 0),
verbal_score = round(rnorm(500, mean = 480, sd = 75), 0)
)
# Payız imtahanı (400 iştirakçı)
set.seed(321)
fall_exam <- data.frame(
student_id = 501:900,
season = "Payız",
math_score = round(rnorm(400, mean = 535, sd = 85), 0),
verbal_score = round(rnorm(400, mean = 465, sd = 70), 0)
)
# Ümumi balları hesablayın
spring_exam$total_score <- spring_exam$math_score + spring_exam$verbal_score
fall_exam$total_score <- fall_exam$math_score + fall_exam$verbal_score
# Məlumatları birləşdirin
university_data <- rbind(spring_exam, fall_exam)
# Xülasə statistikalar
seasonal_summary <- university_data %>%
group_by(season) %>%
summarise(
İştirakçı_Sayı = n(),
Riyaziyyat_Ortalama = round(mean(math_score), 1),
Riyaziyyat_SD = round(sd(math_score), 1),
Şifahi_Ortalama = round(mean(verbal_score), 1),
Şifahi_SD = round(sd(verbal_score), 1),
Ümumi_Ortalama = round(mean(total_score), 1),
Ümumi_SD = round(sd(total_score), 1),
.groups = 'drop'
)
kable(seasonal_summary, caption = "Yaz və Payız İmtahanlarının Müqayisəsi")| season | İştirakçı_Sayı | Riyaziyyat_Ortalama | Riyaziyyat_SD | Şifahi_Ortalama | Şifahi_SD | Ümumi_Ortalama | Ümumi_SD |
|---|---|---|---|---|---|---|---|
| Payız | 400 | 540 | 85.2 | 467 | 67.7 | 1007 | 111 |
| Yaz | 500 | 520 | 80.4 | 479 | 75.2 | 998 | 115 |
## === FƏSİLLƏR ARASI FƏRQLƏR ===
# Riyaziyyat fərqi
math_diff <- mean(fall_exam$math_score) - mean(spring_exam$math_score)
cat("Riyaziyyat ortalama fərqi (Payız - Yaz):", round(math_diff, 2), "\n")## Riyaziyyat ortalama fərqi (Payız - Yaz): 20.5
# Şifahi fərqi
verbal_diff <- mean(fall_exam$verbal_score) - mean(spring_exam$verbal_score)
cat("Şifahi ortalama fərqi (Payız - Yaz):", round(verbal_diff, 2), "\n")## Şifahi ortalama fərqi (Payız - Yaz): -11.7
# Ümumi bal fərqi
total_diff <- mean(fall_exam$total_score) - mean(spring_exam$total_score)
cat("Ümumi bal ortalama fərqi (Payız - Yaz):", round(total_diff, 2), "\n")## Ümumi bal ortalama fərqi (Payız - Yaz): 8.79
# Effect size hesablaması
pooled_sd_math <- sqrt((var(spring_exam$math_score) + var(fall_exam$math_score)) / 2)
effect_size_math <- math_diff / pooled_sd_math
cat("\nEffect Size (Riyaziyyat):", round(effect_size_math, 3), "\n")##
## Effect Size (Riyaziyyat): 0.248
# Bu fərqlərin təsiri
if (abs(effect_size_math) > 0.2) {
cat("⚠️ Fəsillər arasında əhəmiyyətli fərq mövcuddur!\n")
cat("🎯 Test bərabərləşdirmə zəruridir!\n")
} else {
cat("✅ Fəsillər arasında kiçik fərq var, lakin bərabərləşdirmə tövsiyə olunur.\n")
}## ⚠️ Fəsillər arasında əhəmiyyətli fərq mövcuddur!
## 🎯 Test bərabərləşdirmə zəruridir!
# Fəsillər üzrə nəticələrin vizuallaşdırılması
par(mfrow = c(2, 2), mar = c(4, 4, 3, 2))
# Riyaziyyat histogramları
hist(spring_exam$math_score,
main = "Yaz - Riyaziyyat Nəticələri",
xlab = "Riyaziyyat Balı",
col = alpha(colors_custom[1], 0.7),
xlim = c(200, 800),
breaks = 20)
hist(fall_exam$math_score,
main = "Payız - Riyaziyyat Nəticələri",
xlab = "Riyaziyyat Balı",
col = alpha(colors_custom[2], 0.7),
xlim = c(200, 800),
breaks = 20)
# Şifahi histogramları
hist(spring_exam$verbal_score,
main = "Yaz - Şifahi Nəticələri",
xlab = "Şifahi Bal",
col = alpha(colors_custom[3], 0.7),
xlim = c(200, 700),
breaks = 20)
hist(fall_exam$verbal_score,
main = "Payız - Şifahi Nəticələri",
xlab = "Şifahi Bal",
col = alpha(colors_custom[4], 0.7),
xlim = c(200, 700),
breaks = 20)Universitet qəbul imtahanlarının fəsilə görə müqayisəsi
# İnteraktiv scatter plot
p_interactive <- plot_ly(
data = university_data,
x = ~math_score,
y = ~verbal_score,
color = ~season,
colors = colors_custom[1:2],
type = "scatter",
mode = "markers",
marker = list(size = 8, opacity = 0.7),
text = ~paste(
"İştirakçı ID:", student_id, "<br>",
"Fəsil:", season, "<br>",
"Riyaziyyat:", math_score, "<br>",
"Şifahi:", verbal_score, "<br>",
"Ümumi:", total_score
),
hovertemplate = "%{text}<extra></extra>"
) %>%
layout(
title = "Riyaziyyat və Şifahi Balların Əlaqəsi",
xaxis = list(title = "Riyaziyyat Balı"),
yaxis = list(title = "Şifahi Bal"),
showlegend = TRUE
)
p_interactiveİnteraktiv scatter plot - Riyaziyyat və Şifahi balların əlaqəsi
# Müxtəlif problemləri nümayiş etdirək
# Problem 1: Çətinlik səviyyəsi fərqi
cat("=== PROBLEM 1: ÇƏTİNLİK SƏVİYYƏSİ FƏRQİ ===\n")## === PROBLEM 1: ÇƏTİNLİK SƏVİYYƏSİ FƏRQİ ===
## Yaz imtahanı ortalaması: 998
## Payız imtahanı ortalaması: 1007
## Fərq: 8.8 bal
## === PROBLEM 2: VARİASİYA FƏRQİ ===
## Yaz imtahanı standart sapması: 115
## Payız imtahanı standart sapması: 111
## Nisbət: 0.97
## === PROBLEM 3: PAYLANMA FORMASI FƏRQİ ===
spring_skew <- psych::skew(spring_exam$total_score)
fall_skew <- psych::skew(fall_exam$total_score)
cat("Yaz imtahanı çarpıqlığı:", round(spring_skew, 3), "\n")## Yaz imtahanı çarpıqlığı: 0
## Payız imtahanı çarpıqlığı: -0.093
## === BƏRABƏRLƏŞDİRMƏ ÜÇÜN MÖVCUD HƏLL YOLLARI ===
solutions <- data.frame(
Metod = c(
"Lineer Bərabərləşdirmə",
"Ekvipersentil Bərabərləşdirmə",
"Kernel Bərabərləşdirmə",
"IRT Əsaslı Bərabərləşdirmə"
),
Üstünlük = c(
"Sadə və sürətli",
"Paylanma formasını qoruyur",
"Hamar və dəqiq nəticələr",
"Maddə səviyyəsində təhlil"
),
İstifadə_Sahəsi = c(
"Normal paylanmalar",
"Qeyri-normal paylanmalar",
"Böyük nümunələr",
"Çoxölçülü testlər"
),
Növbəti_Dərs = c(
"Dərs 2",
"Dərs 3",
"Dərs 5",
"Dərs 6"
)
)
kable(solutions, caption = "Test Bərabərləşdirmə Metodlarının Müqayisəsi")| Metod | Üstünlük | İstifadə_Sahəsi | Növbəti_Dərs |
|---|---|---|---|
| Lineer Bərabərləşdirmə | Sadə və sürətli | Normal paylanmalar | Dərs 2 |
| Ekvipersentil Bərabərləşdirmə | Paylanma formasını qoruyur | Qeyri-normal paylanmalar | Dərs 3 |
| Kernel Bərabərləşdirmə | Hamar və dəqiq nəticələr | Böyük nümunələr | Dərs 5 |
| IRT Əsaslı Bərabərləşdirmə | Maddə səviyyəsində təhlil | Çoxölçülü testlər | Dərs 6 |
Bu dərsdə aşağıdakı mövzuları əhatə etdik:
✅ - est bərabərləşdirməsinin mahiyyəti - Nə üçün
lazım olduğunu öyrəndik
✅ - Üfüqi vs Şaquli bərabərləşdirmə - İki əsas
yanaşmanı fərqləndirdik
✅ - R mühitinin konfiqurasiyası - Lazım olan paketləri
quraşdırdıq
✅ - Məlumat yaratma və təhlil - Test məlumatlarını
simulyasiya etdik
✅ - Problem identifikasiyası - Real problemləri
müəyyən etdik
## === YARADILMIŞ MƏLUMAT STRUKTURLARI ===
## 1. test_A: 300 şagirdin A formasında nəticələri
## 2. test_B: 280 şagirdin B formasında nəticələri
cat("3. university_data: ", nrow(university_data), " iştirakçının universitet imtahanı nəticələri\n\n")## 3. university_data: 900 iştirakçının universitet imtahanı nəticələri
## Bu məlumatlar növbəti dərslərə ötürüləcək!
# Məlumatları qorumaq
save(test_A, test_B, university_data, spring_exam, fall_exam,
file = "lesson1_data.RData")
cat("✅ Məlumatlar lesson1_data.RData faylında saxlanıldı\n")## ✅ Məlumatlar lesson1_data.RData faylında saxlanıldı
İstəyənlər üçün əlavə araşdırma mövzuları:
Nəzəri əsaslar: Lord & Wingersky (1984) klassik məqaləsi
Beynəlxalq təcrübə: PISA, TIMSS testlərində bərabərləşdirmə
Əlavə R paketləri: plink,
equateIRT, TAM paketləri
Məlumat vizuallaşdırması: shiny ilə
interaktiv tətbiqlər
# Öz test məlumatlarınızı yaradın
set.seed(sizin_doğum_iliniz) # Doğum ilinizi yazın
# İki test forması üçün məlumatlar yaradın
# Formaların çətinlik səviyyələri fərqli olsun
my_test_easy <- data.frame(
student_id = 1:200,
score = round(rnorm(200, mean = ???, sd = ???), 0) # Doldur
)
my_test_hard <- data.frame(
student_id = 201:400,
score = round(rnorm(200, mean = ???, sd = ???), 0) # Doldur
)
# Statistikaları müqayisə edin
# Vizuallaşdırın
# Problemləri müəyyən edinƏgər əlinizdə real test məlumatları varsa:
Aşağıdakı sualları araşdırın:
# Nümunə ölçüsünün təsirini araşdırın
sample_sizes <- c(50, 100, 200, 500, 1000)
for (n in sample_sizes) {
# Her ölçü üçün test məlumatları yaradın
# Statistikaları hesablayın
# Nəticələri müqayisə edin
}📖 Əsas Kitablar: - Kolen, M. J., & Brennan, R. L. (2014). Test Equating, Scaling, and Linking
von Davier, A. A. (2011). Statistical Models for Test Equating, Scaling, and Linking
Dorans, N. J., et al. (2007). Linking and Aligning Scores and Scales
📄 Məqalələr:
Angoff, W. H. (1971). Scales, norms, and equivalent scores
Lord, F. M. (1980). Applications of item response theory
Holland, P. W., & Dorans, N. J. (2006). Linking and equating
🌐 Veb saytlar:
ETS Research - Test bərabərləşdirmə tədqiqatları
💻 GitHub Repositoriyaları:
# Sürətli statistika funksiyası
quick_test_stats <- function(scores, test_name = "Test") {
cat("=== ", test_name, " STATISTICS ===\n")
cat("Şagird sayı:", length(scores), "\n")
cat("Ortalama:", round(mean(scores), 2), "\n")
cat("Standart sapma:", round(sd(scores), 2), "\n")
cat("Minimum:", min(scores), "\n")
cat("Maksimum:", max(scores), "\n")
cat("Çarpıqlıq:", round(psych::skew(scores), 3), "\n")
cat("Kurtosis:", round(psych::kurtosi(scores), 3), "\n")
cat("25% persentil:", quantile(scores, 0.25), "\n")
cat("75% persentil:", quantile(scores, 0.75), "\n")
cat("========================\n\n")
return(invisible(list(
n = length(scores),
mean = mean(scores),
sd = sd(scores),
min = min(scores),
max = max(scores),
skewness = psych::skew(scores),
kurtosis = psych::kurtosi(scores)
)))
}
# Test edin
quick_test_stats(test_A$score, "Test A")## === Test A STATISTICS ===
## Şagird sayı: 300
## Ortalama: 75.4
## Standart sapma: 11.4
## Minimum: 47
## Maksimum: 114
## Çarpıqlıq: 0.339
## Kurtosis: -0.084
## 25% persentil: 68
## 75% persentil: 83
## ========================
## === Test B STATISTICS ===
## Şagird sayı: 280
## Ortalama: 78.3
## Standart sapma: 9.82
## Minimum: 54
## Maksimum: 101
## Çarpıqlıq: -0.091
## Kurtosis: -0.596
## 25% persentil: 71
## 75% persentil: 86
## ========================
# İki testin müqayisəsi üçün vizuallaşdırma funksiyası
compare_two_tests <- function(scores1, scores2, names = c("Test 1", "Test 2")) {
# Məlumatları hazırlayın
combined_data <- data.frame(
score = c(scores1, scores2),
test = rep(names, c(length(scores1), length(scores2)))
)
# Histogram
p1 <- ggplot(combined_data, aes(x = score, fill = test)) +
geom_histogram(alpha = 0.7, position = "identity", bins = 20) +
scale_fill_manual(values = colors_custom[1:2]) +
labs(title = "Test Nəticələrinin Paylanması",
x = "Test Balı", y = "Tezlik") +
theme_minimal()
# Density plot
p2 <- ggplot(combined_data, aes(x = score, color = test, fill = test)) +
geom_density(alpha = 0.3) +
scale_color_manual(values = colors_custom[1:2]) +
scale_fill_manual(values = colors_custom[1:2]) +
labs(title = "Sıxlıq Paylanması",
x = "Test Balı", y = "Sıxlıq") +
theme_minimal()
# Box plot
p3 <- ggplot(combined_data, aes(x = test, y = score, fill = test)) +
geom_boxplot(alpha = 0.7) +
geom_jitter(alpha = 0.3, width = 0.2) +
scale_fill_manual(values = colors_custom[1:2]) +
labs(title = "Box Plot Müqayisəsi",
x = "Test", y = "Test Balı") +
theme_minimal() +
theme(legend.position = "none")
# Q-Q plot
library(gridExtra)
grid.arrange(p1, p2, p3, ncol = 2, nrow = 2)
return(list(histogram = p1, density = p2, boxplot = p3))
}
# Test edin
compare_two_tests(test_A$score, test_B$score, c("Test A", "Test B"))## $histogram
##
## $density
##
## $boxplot
Bu dərs materialları üçün minimum tələblər:
R versiyası: 4.0.0 və ya daha yeni
RStudio: 1.4.0 və ya daha yeni (tövsiyə edilir)
RAM: Minimum 4GB, tövsiyə edilən 8GB+
Disk yeri: 2GB boş yer
# Problem 1: Paket quraşdırma xətaları
if (!require(equate)) {
install.packages("equate", dependencies = TRUE)
library(equate)
}
# Problem 2: Encoding problemləri
Sys.setlocale("LC_ALL", "en_US.UTF-8")
# Problem 3: Plotting problemləri
if (!require(ggplot2)) {
install.packages("ggplot2")
library(ggplot2)
}
# Problem 4: Knitr problemləri
if (!require(knitr)) {
install.packages("knitr")
library(knitr)
}Böyük məlumat dəstləri üçün:
# 1. Məlumat tiplərinə diqqət edin
test_scores <- as.integer(test_scores) # Integer daha sürətlidir
# 2. Vectorization istifadə edin
# Yavaş:
for (i in 1:length(scores)) {
transformed[i] <- transform_function(scores[i])
}
# Sürətli:
transformed <- sapply(scores, transform_function)
# 3. Böyük məlumatlar üçün data.table istifadə edin
library(data.table)
DT <- data.table(test_data)| Vaxt | Bölmə | Fəaliyyət |
|---|---|---|
| 0:00-0:30 | Giriş | Nəzəri materialla tanışlıq |
| 0:30-1:00 | R Setup | Paket quraşdırma və konfiqurasiya |
| 1:00-1:30 | Məlumat Yaratma | Nümunə məlumatlarla iş |
| 1:30-2:00 | Vizuallaşdırma | Qrafik və təhlil |
| 2:00-2:30 | Praktiki Nümunə | Universitet imtahanı analizi |
| 2:30-3:00 | Tapşırıqlar | Müstəqil iş |